The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventor, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Data communications protocols can be generally classified as being either lossless or lossy. When using a lossless communications protocol, a transmitter transmits data only when a receiver has indicated readiness to receive the data. When using a lossy communications protocol, the transmitter transmits data without regard to the readiness of the receiver, and the receiver may ignore or discard data that the receiver is not ready to accept. In some cases, a consumer of the data may request retransmission of any such ignored or discarded data. In other cases, the data consumer may be able to proceed without the ignored or discarded data.
IP (Internet Protocol) is an example of a lossy communications protocol. IP is widely used for Internet and other network communications.
Lossy protocols such as IP may be advantageous in certain situations, such as in networks where data packets traverse a number of points on their way from an originating device to a consuming device. For example, if lossless protocols are used in this type of environment, congestion and delays at a single network point may be propagated to upstream network points. Lossy protocols, on the other hand, allow upstream network points to continue processing data regardless of the status of downstream network points, thereby preventing the upstream network points from becoming congested with data that must be held until downstream congestion is relieved.
Even in situations where lossy communications are tolerated or desired, there is often a need for certain data to be given high priority. As an example, high-priority control data may need to be transferred between components of a network communications device. To accommodate this need, transmitting devices may be configured with a number of transmission queues having different priorities.
There are various scheduling algorithms for determining which of multiple transmission queues will receive attention at any time. One common scheduling algorithm, referred to as strict priority, gives immediate attention to any data that is placed in a high-priority queue. When using strict priority, data from lower-priority queues is transmitted only if all higher priority queues are empty. A disadvantage of this algorithm is that situations may arise in which lower priority queues are never processed, due to continued presence of data in higher-priority queues.
Weighted round robin (WRR) is another scheduling algorithm, in which queues having different priorities are addressed in a sequence and data is transmitted in specified proportions from each queue. One implication of WRR is that sometimes (e.g., periodically) higher priority queues are ignored while lower priority queues are processed. Typically, queues are processed in descending order of priority, with each queue being processed exclusively until the desired proportion of data packets have been sent from that queue.